<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:zj="http://www.zju.edu.cn" xmlns:y="http://www.zju.edu.cn/ZJ" exclude-result-prefixes="zj y">
  <xsl:import href="DetailItems_Trans.xslt"/>
  <xsl:import href="PublicItems.xslt"/>
  <xsl:template name="y:ProcessAttribute">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="zj:Attribute">
      <xsl:with-param name="Field" select="$Field"/>
    </xsl:call-template>
    <xsl:apply-templates select="$Field" mode="zj:Attribute">
      <xsl:with-param name="Value" select="$Value"/>
    </xsl:apply-templates>
  </xsl:template>
  <xsl:template name="y:HTML">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="IsDetail" select="false()"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="IsEmpty" select="$Field/@IsEmpty = 'true'"/>
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-right">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <textarea name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" style="display:none" Ctrl="HTML">
        <xsl:value-of disable-output-escaping="yes" select="$Value"/>
      </textarea>
      <iframe ID="{$Field/zj:FieldName}Html" src="../edithtmlwin/htmleditor.asp?id={$Field/zj:FieldName}&amp;style=standard" frameborder="0" scrolling="no" width="95%" height="350">
        <xsl:if test="$IsDetail">
          <xsl:attribute name="src">../edithtmlwin/htmlviewer.asp?id=<xsl:value-of select="$Field/zj:FieldName"/>&amp;style=view</xsl:attribute>
        </xsl:if>
        <xsl:call-template name="y:ProcessAttribute">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="Value" select="$Value"/>
        </xsl:call-template>
      </iframe>
    </td>
  </xsl:template>
  <xsl:template name="zj:IsTwoColumn">
    <xsl:param name="IsTwoColumn"/>
    <xsl:choose>
      <xsl:when test="$IsTwoColumn='three'">
        <xsl:attribute name="width">23%</xsl:attribute>
      </xsl:when>
      <xsl:when test="$IsTwoColumn='two'">
        <xsl:attribute name="colspan">3</xsl:attribute>
      </xsl:when>
      <xsl:when test="$IsTwoColumn='one'">
        <xsl:attribute name="colspan">5</xsl:attribute>
      </xsl:when>
    </xsl:choose>
  </xsl:template>
  <xsl:template name="zj:DetailValue">
    <xsl:param name="HRefType"/>
    <xsl:param name="HRefAddress"/>
    <xsl:param name="Value"/>
    <xsl:param name="Target"/>
    <b>
      <xsl:choose>
        <xsl:when test="$HRefType='HREF'">
          <a href="{$HRefAddress}">
            <xsl:if test="$Target!=''">
              <xsl:attribute name="target"><xsl:value-of select="$Target"/></xsl:attribute>
            </xsl:if>
            <xsl:value-of select="$Value"/>
          </a>
        </xsl:when>
        <xsl:when test="$HRefType='HTTP'">
          <a target="_blank">
            <xsl:attribute name="href"><xsl:if test="not(starts-with(translate($HRefAddress,'htp','HTP'), 'HTTP'))">http://</xsl:if><xsl:value-of select="$HRefAddress"/></xsl:attribute>
            <xsl:value-of select="$Value"/>
          </a>
        </xsl:when>
        <xsl:when test="$HRefType='EMAIL'">
          <a href="mailto:{$Value}">
            <xsl:value-of select="$Value"/>
          </a>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="zj:ProcessText">
            <xsl:with-param name="Text" select="$Value"/>
          </xsl:call-template>
        </xsl:otherwise>
      </xsl:choose>
    </b>
  </xsl:template>
  <xsl:template name="zj:Hidden">
    <xsl:param name="Field"/>
    <xsl:param name="Value" select="''"/>
    <input type="hidden" name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" value="{$Value}"/>
  </xsl:template>
  <xsl:template name="zj:HiddenKey">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <input type="hidden" name="OLD_{$Field/zj:FieldName}" id="OLD_{$Field/zj:FieldName}" value="{$Value}"/>
  </xsl:template>
  <xsl:template name="zj:Detail">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-detail">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <div align="{$Field/zj:Display/@Align}">
        <xsl:choose>
          <xsl:when test="$Field/zj:Extension/@CheckValue != ''">
            <b>
              <xsl:choose>
                <xsl:when test="$Value=$Field/zj:Extension/@CheckValue">
                  <xsl:value-of select="'√'"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:value-of select="'X'"/>
                </xsl:otherwise>
              </xsl:choose>
            </b>
          </xsl:when>
          <xsl:otherwise>
            <xsl:variable name="Link" select="$Field/zj:Display/Link"/>
            <xsl:variable name="RefValue">
              <xsl:for-each select="$Value">
                <xsl:value-of select="../*[local-name()=$Link/@ID]"/>
              </xsl:for-each>
            </xsl:variable>
            <xsl:variable name="HRefAddress">
              <xsl:call-template name="zj:HRefAddress">
                <xsl:with-param name="HRefType" select="$Link/@HRefType"/>
                <xsl:with-param name="Link" select="$Link"/>
                <xsl:with-param name="RefValue" select="$RefValue"/>
                <xsl:with-param name="Value" select="$Value"/>
              </xsl:call-template>
            </xsl:variable>
            <xsl:variable name="DisplayValue">
              <xsl:call-template name="zj:DisplayValue">
                <xsl:with-param name="Field" select="$Field"/>
                <xsl:with-param name="Value" select="$Value"/>
              </xsl:call-template>
            </xsl:variable>
            <xsl:call-template name="zj:DetailValue">
              <xsl:with-param name="HRefType" select="$Link/@HRefType"/>
              <xsl:with-param name="HRefAddress" select="$HRefAddress"/>
              <xsl:with-param name="Value" select="$DisplayValue"/>
              <xsl:with-param name="Target" select="$Link/@Target"/>
            </xsl:call-template>
          </xsl:otherwise>
        </xsl:choose>
      </div>
    </td>
  </xsl:template>
  <xsl:template name="zj:DetailHidden">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="zj:Hidden">
      <xsl:with-param name="Field" select="$Field"/>
      <xsl:with-param name="Value" select="$Value"/>
    </xsl:call-template>
    <xsl:call-template name="zj:Detail">
      <xsl:with-param name="Field" select="$Field"/>
      <xsl:with-param name="Value" select="$Value"/>
    </xsl:call-template>
  </xsl:template>
  <xsl:template name="zj:DetailMultiSelect">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-detail">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <b>
        <xsl:call-template name="zj:DisplayMultiSelect">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="Value" select="$Value"/>
        </xsl:call-template>
      </b>
    </td>
  </xsl:template>
  <xsl:template name="zj:DetailUpload">
    <xsl:param name="Field"/>
    <xsl:param name="DataRecord"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-detail">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <b>
        <xsl:call-template name="zj:DisplayUpload">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="DataRecord" select="$DataRecord"/>
          <xsl:with-param name="FieldList" select="ancestor::zj:Table/*/zj:Field"/>
        </xsl:call-template>
      </b>
    </td>
  </xsl:template>
  <xsl:template name="zj:DetailHTML">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="y:HTML">
      <xsl:with-param name="Field" select="$Field"/>
      <xsl:with-param name="Value" select="$Value"/>
      <xsl:with-param name="IsDetail" select="true()"/>
    </xsl:call-template>
  </xsl:template>
  <xsl:template name="zj:DetailTextArea">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-detail">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <textarea name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" rows="3" class="wid90" readonly="readonly">
        <xsl:call-template name="y:ProcessAttribute">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="Value" select="$Value"/>
        </xsl:call-template>
        <xsl:value-of select="$Value"/>
      </textarea>
    </td>
  </xsl:template>
  <xsl:template match="zj:Field" mode="zj:Attribute">
    <xsl:param name="Value"/>
  </xsl:template>
</xsl:stylesheet>
